/********************************************
 * 功能说明: 数据字典常量生成类
 * 模块名称: 生成模块
 * 系统名称: 互联网前置平台
 * 软件版权:
 * 系统版本: 1.0.0
 * 开发人员: zhangfb
 * 开发时间: 2017年7月14日 下午1:50:01
 * 审核人员:
 * 相关文档:
 * 修改记录: 修改日期 修改人员 修改说明
 *********************************************/
package com.hyacinth.database.mybatis.generator;


import com.hyacinth.utils.JDBCUtils;

import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 数据字典常量生成类
 * @author zhangfb
 * @version 1.0.0.1
 */
public class DictGenerator extends BaseGenerator {
	
	public static void main(String[] args) {
		DictGenerator generator = new DictGenerator();
		generator.setFileName("IDict.java");
		generator.setJavaType("interface");
		generator.setClassName("数据字典常量");
		generator.setModuleName("平台常量模块");
		generator.setPackageName("com.aghoo.ifpbiz.common.constant");
		generator.execute();
	}
	
	public String getFieldContent() {
		String type = "";
		String meta;
		String field;
		
		StringBuffer sb = new StringBuffer();
		StringBuilder sql = new StringBuilder();
		sql.append("SELECT a.code dict_type, a.name type_name, b.code item_code, b.name item_name ");
		sql.append("FROM hoyi_dict_type a, hoyi_dict_item b ");
		sql.append("WHERE a.code = b.type ");
		sql.append("ORDER BY a.seqno, b.seqno ");
		ResultSet rs = JDBCUtils.query(sql.toString());
		try {
			String dictType, typeName, itemCode, itemName;
			while (rs.next()) {
				dictType = rs.getString("dict_type");
				typeName = rs.getString("type_name");
				itemCode = rs.getString("item_code");
				itemName = rs.getString("item_name");
				if (!type.equals(rs.getString("dict_type"))) {
					if (!"".equals(type)) {
						sb.append("\r\n\t");
					}
					type = dictType;
					meta = String.format("/** %s */\r\n", typeName);
					field = String.format("\tString %s = \"%s\";\r\n", dictType, dictType);
					sb.append(meta + field);
				}
				meta = String.format("\t/** %s： %s %s */\r\n", typeName, itemCode, itemName);
				field = String.format("\tString %s_%s = \"%s\";\r\n", dictType, itemCode, itemCode);
				sb.append(meta + field);
			}
		} catch (SQLException e) {
			e.printStackTrace();
		} finally {
			JDBCUtils.close(rs);
		}
		return sb.toString();
	}

	@Override
	protected String getMethodContent() {
		return null;
	}

}
